/************************************************************************

								Heroes IV
					  Copyright 2000, The 3DO Company

	------------------------------------------------------------------
  						 combat_model_window.h

	$Header: /heroes4/combat_model_window.h $

	$NoKeywords: $

 ************************************************************************/

#if !defined( COMBAT_MODEL_WINDOW_H_INCLUDED )
#define COMBAT_MODEL_WINDOW_H_INCLUDED

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include <vector>
#include "bitmap_group_ptr.h"
#include "combat_actor_model_cache.h"
#include "game_window.h"

class t_bitmap_layer_window;
class t_combat_actor_display;

// -----------------------------------------------------------------
// window which shows a combat creature
// -----------------------------------------------------------------
class t_combat_model_window : public t_window
{
public:
	typedef t_counted_ptr<t_combat_actor_display> t_actor_display_ptr;

	t_combat_model_window( t_screen_rect const& rect, t_window* parent );
	t_combat_model_window( t_screen_rect const& rect, t_window* parent,
		                   t_creature_type creature );
	t_combat_model_window( t_screen_rect const& rect, t_window* parent, t_town_type alignment, 
		                   bool is_male, bool has_archery, bool is_spellcaster );
	virtual void paint( t_paint_surface & paint_surface );
	void         set( t_creature_type creature );
	void         set( t_town_type alignment, bool is_male, bool has_archery, 
		              bool is_spellcaster );
    void         set( t_town_type town );
protected:
	void initialize();
	void set( t_combat_actor_model_ptr model, int maximum_figures );

	std::vector<t_actor_display_ptr> m_actors;
	t_bitmap_group_ptr               m_background_bitmap;
	t_screen_point                   m_background_origin;
	t_bitmap_group_ptr               m_layout;
	double                           m_scale;
};

#endif // COMBAT_MODEL_WINDOW_H_INCLUDED
